package pe.gob.osce.sirenas.wd.jsf.bean.registro;
/*
* Resumen.
* Objeto 				:	RegistroArbitroBean.java
* Descripcion 			: 	.
* Fecha de Creacion 	: 	26/02/2015.
* Pry de Creacion 		: 	RNA/RNS.
* Autor 				: 	Julio Cayulla.
* ================================================================================================
* Modificaciones
* Motivo						Fecha		Nombre				Descripcion
* ================================================================================================
*
*/
import java.io.Serializable;
import java.text.ParseException;
import java.util.ArrayList;
import java.util.List;
import java.util.ResourceBundle;

import javax.annotation.PostConstruct;
import javax.ejb.EJB;
import javax.ejb.EJBException;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.event.ValueChangeEvent;

import org.apache.log4j.Logger;
import org.primefaces.context.RequestContext;

import pe.gob.osce.sirenas.model.AcreditacionDTO;
import pe.gob.osce.sirenas.model.AuditoriaDTO;
import pe.gob.osce.sirenas.model.FichaArbitralDTO;
import pe.gob.osce.sirenas.model.FiscalizaEntidadDTO;
import pe.gob.osce.sirenas.model.FormacionAcademicaDTO;
import pe.gob.osce.sirenas.svc.RegistrarFichaArbitroServiceLocal;
import pe.gob.osce.sirenas.svc.RegistrarFiscalizacionServiceLocal;
import pe.gob.osce.sirenas.wd.util.CODIGO_REGISTRO;
import pe.gob.osce.sirenas.wd.util.ConstanteWeb;
import pe.gob.osce.sirenas.wd.util.RepositorioDatos;
import pe.gob.osce.sirenas.wd.util.UBaseManage;

@ManagedBean(name="registroArbitroFormacionAcademicaBean")
@SessionScoped
public class RegistroArbitroFormacionAcademicaBean extends UBaseManage implements Serializable{

	
	/**
	 * 
	 */
	private static final long serialVersionUID = 7555870436457479674L;
	
	final static Logger log = Logger.getLogger(RegistroSolicitudBean.class);
	
	@EJB
	private	RegistrarFichaArbitroServiceLocal	registrarFichaArbitroService;
	@EJB
	private	RegistrarFiscalizacionServiceLocal	registrarFiscalizacionService;

	ResourceBundle propSirenas = ResourceBundle.getBundle(ConstanteWeb.PROPERTIES);
	
	private RepositorioDatos repositorioDatos;
    private String console; 
    
    private RequestContext context; 
	private Long indicadorEspecialidad;
	/*****FIN*****/
	private FiscalizaEntidadDTO fiscalizaEntidadDTO = new FiscalizaEntidadDTO();
	private FichaArbitralDTO fichaArbitral;
	private	FormacionAcademicaDTO arbFormacionAcademica = new FormacionAcademicaDTO();
	private	List<FormacionAcademicaDTO> listaFormacionAcademicaCompleta;
	private	List<FormacionAcademicaDTO> listaFormacionAcademicaOriginal;
	private	List<FormacionAcademicaDTO> listaFormacionAcademicaActualizacion;
	private	List<FormacionAcademicaDTO> listArbFormacionAcademicaHistorial;
	
	/*************** Contrataciones- Arbitraje -----Derecho Administrativo  /*/


	private Integer indiceListaFormacion;
	private Boolean btnAgregar;
	private Boolean btnRectificar;
	private Boolean esPendiente;
	private Boolean esEditar;
	private Boolean otrosCentroEstudios;
	private String codTramite;
	
	@PostConstruct
	public void init() throws ParseException {		
		establecerObjetoSession(ConstanteWeb.IND_CARGAR_LISTAS, false);
		
		this.arbFormacionAcademica= new FormacionAcademicaDTO();	
		this.listaFormacionAcademicaCompleta=new ArrayList<FormacionAcademicaDTO>();
		this.arbFormacionAcademica= new FormacionAcademicaDTO();
		this.listArbFormacionAcademicaHistorial=new ArrayList<FormacionAcademicaDTO>();

		List<AcreditacionDTO> listaAcreditaciones = new ArrayList<AcreditacionDTO>();
		establecerObjetoSession(ConstanteWeb.LISTA_ACREDITACIONES,listaAcreditaciones); 
		
		repositorioDatos=obtenerRepositorioDatos();
		this.fichaArbitral=(FichaArbitralDTO)obtenerObjetoSession(ConstanteWeb.FICHA_REGISTRO); 
		ObtenerListaFormacionAcademica();
		validarEstadoFicha();
		/**Validar permisos de Botones*/
		this.btnAgregar=true;
		this.btnRectificar=false;
		this.esEditar=false;
		this.otrosCentroEstudios=true;
	}
	public String verRegistroArbitro() throws ParseException {		
		establecerObjetoSession(ConstanteWeb.IND_CARGAR_LISTAS, false);
		
		this.arbFormacionAcademica= new FormacionAcademicaDTO();	
		this.listaFormacionAcademicaCompleta=new ArrayList<FormacionAcademicaDTO>();
		this.arbFormacionAcademica= new FormacionAcademicaDTO();
		this.listArbFormacionAcademicaHistorial=new ArrayList<FormacionAcademicaDTO>();

		List<AcreditacionDTO> listaAcreditaciones = new ArrayList<AcreditacionDTO>();
		establecerObjetoSession(ConstanteWeb.LISTA_ACREDITACIONES,listaAcreditaciones); 
		
		repositorioDatos=obtenerRepositorioDatos();
		this.fichaArbitral=(FichaArbitralDTO)obtenerObjetoSession(ConstanteWeb.FICHA_REGISTRO); 
		ObtenerListaFormacionAcademica();
		validarEstadoFicha();
		/**Validar permisos de Botones*/
		this.btnAgregar=true;
		this.btnRectificar=false;
		this.esEditar=false;
		this.otrosCentroEstudios=true;
		return ConstanteWeb.RPTA_REGISTROARBITRO;
	}
	
	private void ObtenerListaFormacionAcademica(){
		this.indiceListaFormacion=1;
		this.listaFormacionAcademicaOriginal=new ArrayList<FormacionAcademicaDTO>();
		this.listaFormacionAcademicaActualizacion=new ArrayList<FormacionAcademicaDTO>();
		try {
			this.listaFormacionAcademicaCompleta=registrarFichaArbitroService.obtenerFichaFormacionAcademica(fichaArbitral.getIdFicha());		

			if (listaFormacionAcademicaCompleta!= null) {
				for (FormacionAcademicaDTO formacionAcademicaDTO : listaFormacionAcademicaCompleta) {
					formacionAcademicaDTO.setIdEstadoFicha(this.fichaArbitral.getIdEstadoFicha());
					formacionAcademicaDTO.setIndice(indiceListaFormacion);
					formacionAcademicaDTO.setDescAreaProfesion(repositorioDatos.getLabelAreaProfesion(formacionAcademicaDTO.getIdAreaProfesion()).toUpperCase());
					formacionAcademicaDTO.setDescCentroEstudios(repositorioDatos.getLabelCentroEstudios(formacionAcademicaDTO.getIdCentroEstudios()).toUpperCase());
					if(formacionAcademicaDTO.getDescripcionOtroCentro()!=null)
						formacionAcademicaDTO.setDescripcionOtroCentro(formacionAcademicaDTO.getDescripcionOtroCentro().toUpperCase());
					formacionAcademicaDTO.setDescPais(repositorioDatos.getLabelPais(formacionAcademicaDTO.getIdPais()).toUpperCase());
					formacionAcademicaDTO.setDescGradoObtenido(repositorioDatos.getLabelParametro(formacionAcademicaDTO.getIndGradoObtenido()).toUpperCase());
					formacionAcademicaDTO.setDescripcionGrado(formacionAcademicaDTO.getDescripcionGrado().toUpperCase());
					indiceListaFormacion++;
					
					if(formacionAcademicaDTO.getCodRegistro().equals(CODIGO_REGISTRO.ORIGINAL.getId())){
						this.listaFormacionAcademicaOriginal.add(formacionAcademicaDTO);
					}else {
						this.listaFormacionAcademicaActualizacion.add(formacionAcademicaDTO);
					}
				}
			}else{
				this.listaFormacionAcademicaCompleta=new ArrayList<FormacionAcademicaDTO>();
			}
			establecerObjetoSession(ConstanteWeb.LISTA_FORM_ACADEMICA,listaFormacionAcademicaCompleta);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	
	public void distribuirListaFormacion(){
		this.listaFormacionAcademicaOriginal=new ArrayList<FormacionAcademicaDTO>();
		this.listaFormacionAcademicaActualizacion=new ArrayList<FormacionAcademicaDTO>();

		for (FormacionAcademicaDTO formacionAcademicaDTO : listaFormacionAcademicaCompleta) {
			if(formacionAcademicaDTO.getCodRegistro().equals(CODIGO_REGISTRO.ORIGINAL.getId())){
				this.listaFormacionAcademicaOriginal.add(formacionAcademicaDTO);
			}else {
				this.listaFormacionAcademicaActualizacion.add(formacionAcademicaDTO);
			}
		}
	}
	
	public void cargarFormacionAcademica(Integer index){
		arbFormacionAcademica = this.listaFormacionAcademicaCompleta.get(obtieneIndexListaFormAcademica(index));
		this.btnAgregar=false;
		
		if(arbFormacionAcademica.getIdFormacionAcademica()==null || 
				this.fichaArbitral.getIdEstadoFicha()==Long.parseLong(propSirenas.getString(ConstanteWeb.ID_ESTADO_PENDIENTE)))
		{
			this.esEditar=true;
			this.btnRectificar=true;
		}else
		{
			this.esEditar=false;
			this.btnRectificar=true;
		}
		
	}
	
	public void botonCancelar(){
		this.arbFormacionAcademica= new FormacionAcademicaDTO();
		this.btnAgregar=true;
		this.btnRectificar=false;
	}
	
	private void validarEstadoFicha(){
		Long estado=this.fichaArbitral.getIdEstadoFicha();
		if(estado!=Long.parseLong(propSirenas.getString(ConstanteWeb.ID_ESTADO_PENDIENTE))){
			this.esPendiente=false;
		}
		else
		{
			this.esPendiente=true;
		}	
		
	}

	
	public int obtieneIndexListaFormAcademica(Integer index){
		int indice=0;
		for (FormacionAcademicaDTO formacionAcademica : this.listaFormacionAcademicaCompleta) {
			if(formacionAcademica.getIndice()==index){
				break;
			}
			indice++;
		}
		return indice;
	}	
	
	public void  guardarFormacionAcademicaTabla(){
        List<FormacionAcademicaDTO> listFormacionAcademicaDTO;
		AuditoriaDTO auditoria=(AuditoriaDTO)obtenerObjetoSession(ConstanteWeb.AUDITORIA);
		try{
			listFormacionAcademicaDTO= this.listaFormacionAcademicaCompleta;
			if(this.fichaArbitral.getIdEstadoFicha()!=Long.parseLong(propSirenas.getString(ConstanteWeb.ID_ESTADO_PENDIENTE)))
			{
				for (FormacionAcademicaDTO formacionAcademicaDTO : listFormacionAcademicaDTO) {
					if(formacionAcademicaDTO.getIdModificado()!=null &&		formacionAcademicaDTO.getIdModificado()!=Long.parseLong(propSirenas.getString(ConstanteWeb.VALORCERO)))
					formacionAcademicaDTO.setCodTramite(this.codTramite);
				}
			}
			this.listaFormacionAcademicaCompleta= registrarFichaArbitroService.guardarListaFormacionAcademica(listFormacionAcademicaDTO, auditoria,this.fichaArbitral.getIdPersona());
			ObtenerListaFormacionAcademica();	
			
			this.arbFormacionAcademica= new FormacionAcademicaDTO();
			this.codTramite="";
			RequestContext.getCurrentInstance().update("idFormAcademicaArbitro");
			RequestContext.getCurrentInstance().update("idDialogTramite");
			setMensajeroInfo(propSirenas.getString(ConstanteWeb.MSJ_REG_OK));
		}catch(Exception e){
			log.error(e.getMessage(),e);
			setMensajeroError(propSirenas.getString(ConstanteWeb.MSJ_REG_ERROR),"");
		}
	}
		

	/**
     * Metodo que Agregar una nueva formacion academica a la Grilla 
     
     * @throws EJBException genera una excepción en caso de error.
     */
	
	public void agregarFormacionAcademicaArbitro(){
		if(validaFormAcademica()){
		
			this.arbFormacionAcademica.setIndice(indiceListaFormacion);
			arbFormacionAcademica.setIdFicha(fichaArbitral.getIdFicha());
			arbFormacionAcademica.setDescripcionGrado(arbFormacionAcademica.getDescripcionGrado().toUpperCase());
			if(arbFormacionAcademica.getDescripcionOtroCentro()!=null)
				arbFormacionAcademica.setDescripcionOtroCentro(arbFormacionAcademica.getDescripcionOtroCentro().toUpperCase());
			arbFormacionAcademica.setDescAreaProfesion(repositorioDatos.getLabelAreaProfesion(arbFormacionAcademica.getIdAreaProfesion()).toUpperCase());
			arbFormacionAcademica.setDescCentroEstudios(repositorioDatos.getLabelCentroEstudios(arbFormacionAcademica.getIdCentroEstudios()).toUpperCase());
			arbFormacionAcademica.setDescPais(repositorioDatos.getLabelPais(arbFormacionAcademica.getIdPais()).toUpperCase());
			arbFormacionAcademica.setDescGradoObtenido(repositorioDatos.getLabelParametro(arbFormacionAcademica.getIndGradoObtenido()).toUpperCase());	
			
			if(this.fichaArbitral.getIdEstadoFicha()==Long.parseLong(propSirenas.getString(ConstanteWeb.ID_ESTADO_PENDIENTE))){
				arbFormacionAcademica.setCodRegistro(CODIGO_REGISTRO.ORIGINAL.getId() );
			}else{
				arbFormacionAcademica.setCodRegistro(CODIGO_REGISTRO.ACTUALIZACION.getId() );
			}
			
			listaFormacionAcademicaCompleta.add(arbFormacionAcademica);
			indiceListaFormacion++;		
			this.arbFormacionAcademica= new FormacionAcademicaDTO();
			distribuirListaFormacion();
		}
		
	}

	public boolean validaFormAcademica(){
		boolean validacion=true;
		if(arbFormacionAcademica.getIdAreaProfesion()<=0)
		{
			setMensajeroError(propSirenas.getString(ConstanteWeb.MSJ_REQ_AREAPROFESION), "");			
			return false;
			
		}	
		if(arbFormacionAcademica.getIdCentroEstudios()<=0)
		{
			setMensajeroError(propSirenas.getString(ConstanteWeb.MSJ_REQ_CENTRO_ESTUDIOS), "");
			return false;
								
		}	
		if(arbFormacionAcademica.getIndGradoObtenido()<=0)
		{
			setMensajeroError(propSirenas.getString(ConstanteWeb.MSJ_REQ_GRADO_TITULOOBTENIDO), "");
			return false;
						
		}
		if(arbFormacionAcademica.getDescripcionGrado()==null || arbFormacionAcademica.getDescripcionGrado().trim().equals(""))
		{
			setMensajeroError(propSirenas.getString(ConstanteWeb.MSJ_REQ_DESC_GRADOTITULO), "");
			return false;
			
		}		
		if(arbFormacionAcademica.getFecEgreso()==null)
		{
			setMensajeroError(propSirenas.getString(ConstanteWeb.MSJ_REQ_FEC_GRADOTITULO), "");
			return false;
			
		}
		if(arbFormacionAcademica.getIdPais()<=0){
			setMensajeroError(propSirenas.getString(ConstanteWeb.MSJ_REQ_PAIS), "");
			return false;
			
		}		
		return validacion;
	}
	

	
	public void eliminarFormacionAcademica(Integer index){
		FormacionAcademicaDTO formacionTemporal;
		/* Verifico que No se este rectificando ningun registro*/
		if(this.btnAgregar){
			int indice=obtieneIndexListaFormAcademica(index);
			formacionTemporal = this.listaFormacionAcademicaCompleta.get(indice);
			//Verifico si el Registro existe en la BD
			if(formacionTemporal.getIdFormacionAcademica()!=null){
				//Si existe, cambio el estado a 0, el sistema lo tomara como eliminado de la BD
				formacionTemporal.setEstado(0L);
				this.listaFormacionAcademicaCompleta.set(indice, formacionTemporal);
			}else{
				//Simplemente elimino el registro de la Lista
				this.listaFormacionAcademicaCompleta.remove(indice);
			}		
			distribuirListaFormacion();
		}else{
			setMensajeroInfo(propSirenas.getString(ConstanteWeb.MSJ_VALID_RECTIF));
		}
	}
	
	public void fiscalizarFormacionAcademica(){}

	public void rectificarFormacionAcademica(){

		if(validaFormAcademica()){
			
			if(arbFormacionAcademica.getIdFormacionAcademica()!=null)
				this.arbFormacionAcademica.setIdModificado(arbFormacionAcademica.getIdFormacionAcademica());
			if(arbFormacionAcademica.getDescripcionOtroCentro()!=null)
				this.arbFormacionAcademica.setDescripcionOtroCentro(arbFormacionAcademica.getDescripcionOtroCentro().toUpperCase());
			this.arbFormacionAcademica.setDescAreaProfesion(repositorioDatos.getLabelAreaProfesion(arbFormacionAcademica.getIdAreaProfesion()).toUpperCase());
			this.arbFormacionAcademica.setDescCentroEstudios(repositorioDatos.getLabelCentroEstudios(arbFormacionAcademica.getIdCentroEstudios()).toUpperCase());
			this.arbFormacionAcademica.setDescGradoObtenido(repositorioDatos.getLabelParametro(arbFormacionAcademica.getIndGradoObtenido()).toUpperCase());
			this.arbFormacionAcademica.setDescPais(repositorioDatos.getLabelPais(arbFormacionAcademica.getIdPais()).toUpperCase());
			this.arbFormacionAcademica.setDescripcionGrado(this.arbFormacionAcademica.getDescripcionGrado().toUpperCase());
			int indice=obtieneIndexListaFormAcademica(this.arbFormacionAcademica.getIndice());
			this.listaFormacionAcademicaCompleta.set(indice, this.arbFormacionAcademica);
			
			this.arbFormacionAcademica= new FormacionAcademicaDTO();	
			distribuirListaFormacion();
			this.btnAgregar=true;
			this.btnRectificar=false;
			this.esEditar=false;
		}
	}
	public void verRectificaciones(){}
	
	public void verHistorialFormacionAcademica(Long idFormacionAcademica ){
		
		try {
			this.listArbFormacionAcademicaHistorial= new ArrayList<FormacionAcademicaDTO>();
			this.listArbFormacionAcademicaHistorial=registrarFichaArbitroService.consultarHistorialFormacionAcademica(idFormacionAcademica);
			
			if(this.listArbFormacionAcademicaHistorial!=null)
			{
				for (FormacionAcademicaDTO formacionAcademicaDTO : listArbFormacionAcademicaHistorial) {
					formacionAcademicaDTO.setDescripcionGrado(formacionAcademicaDTO.getDescripcionGrado().toUpperCase());
					if(formacionAcademicaDTO.getDescripcionOtroCentro()!=null)
						formacionAcademicaDTO.setDescripcionOtroCentro(formacionAcademicaDTO.getDescripcionOtroCentro().toUpperCase());
					formacionAcademicaDTO.setDescAreaProfesion(repositorioDatos.getLabelAreaProfesion(formacionAcademicaDTO.getIdAreaProfesion()).toUpperCase());
					formacionAcademicaDTO.setDescCentroEstudios(repositorioDatos.getLabelCentroEstudios(formacionAcademicaDTO.getIdCentroEstudios()).toUpperCase());
					formacionAcademicaDTO.setDescPais(repositorioDatos.getLabelPais(formacionAcademicaDTO.getIdPais()).toUpperCase());
					formacionAcademicaDTO.setDescGradoObtenido(repositorioDatos.getLabelParametro(formacionAcademicaDTO.getIndGradoObtenido()).toUpperCase());			
				}
			}
		} catch (Exception e) {
			this.listArbFormacionAcademicaHistorial= new ArrayList<FormacionAcademicaDTO>();
		}
		context = RequestContext.getCurrentInstance();
		context.execute("PF('dialogExperiencia').show();");
	}
	public void cerrarEspAcademicaHistorialPopup(){
		context = RequestContext.getCurrentInstance();
		context.execute("PF('dialogExperiencia').hide();");
	}

	public void abrirConfirmacionPopup(){
		context = RequestContext.getCurrentInstance();
		context.execute("PF('dialogoConfirmacion').show();");
	}
	public void cerrarConfirmacionPopup(){
		context = RequestContext.getCurrentInstance();
		context.execute("PF('dialogoConfirmacion').hide();");
	}
	public void abrirCodTramitePopup(){
		context = RequestContext.getCurrentInstance();
		context.execute("PF('dialogoTramite').show();");
	}
	public void cerrarCodTramitePopup(){
		context = RequestContext.getCurrentInstance();
		context.execute("PF('dialogoTramite').hide();");
	}
	
	public void validaRectificacion(){
		this.fichaArbitral =(FichaArbitralDTO)obtenerObjetoSession(ConstanteWeb.FICHA_REGISTRO);
		if(fichaArbitral.getIdEstadoFicha()==Long.parseLong(propSirenas.getString(ConstanteWeb.ID_ESTADO_PENDIENTE))){
			guardarFormacionAcademicaTabla();
		}else{
			if(encuentraRectificados()){
				abrirCodTramitePopup();
			}else{
				guardarFormacionAcademicaTabla();
			}
		}
		cerrarConfirmacionPopup();
	}

	
	public boolean encuentraRectificados(){
		boolean rectificados=false;
		for (FormacionAcademicaDTO formacionAcademicaDTO : this.listaFormacionAcademicaCompleta) {
			if(formacionAcademicaDTO.getIdModificado()!=null &&
				formacionAcademicaDTO.getIdModificado()!=Long.parseLong(propSirenas.getString(ConstanteWeb.VALORCERO))){
				rectificados=true;
				break;
			}				
		}
		return rectificados;
	}
	public void validaCodTramite(){
		if(this.codTramite!=null || this.codTramite.trim().length()>0){
			cerrarCodTramitePopup();
			guardarFormacionAcademicaTabla();
			
		}else{
			setMensajeroInfo("Ingrese el Numero de Tramite de la Rectificacion");
		}
	}
	
	public void cancelarRectificacionEspecialidad(){
		
		this.listArbFormacionAcademicaHistorial= new ArrayList<FormacionAcademicaDTO>();
		cerrarEspAcademicaHistorialPopup();
	}
	
	
	
	
	public void mostrarOtrosCentrosEstudios(ValueChangeEvent event ){
		
		Long seleccioando=Long.parseLong(event.getNewValue().toString().trim());
		if(seleccioando==Long.parseLong(propSirenas.getString(ConstanteWeb.ID_CENTRO_ESTUDIOSEXTRANJERO)))
			this.otrosCentroEstudios=false;
		else
			this.otrosCentroEstudios=true;
		
		if(seleccioando!=Long.parseLong(propSirenas.getString(ConstanteWeb.ID_CENTRO_ESTUDIOSEXTRANJERO)))
		{
			this.arbFormacionAcademica.setIdPais(Long.parseLong(propSirenas.getString(ConstanteWeb.ID_PERU)));
			this.arbFormacionAcademica.setDescripcionOtroCentro("");
		}
		else
		{
			this.arbFormacionAcademica.setIdPais(Long.parseLong(propSirenas.getString(ConstanteWeb.VALORCERO)));
		}
	}
	
	
	
	
	
	/**
	 * Metodo que permite obtener fichaArbitral.
	 * @return fichaArbitral , tipo FichaArbitralDTO.
	 */
	public FichaArbitralDTO getFichaArbitral() {
		return fichaArbitral;
	}

	/**
	 * Permite actualizar fichaArbitral.
	 * @param fichaArbitral, tipo FichaArbitralDTO.
	 */
	public void setFichaArbitral(FichaArbitralDTO fichaArbitral) {
		this.fichaArbitral = fichaArbitral;
	}

	public String getConsole() {
		return console;
	}
	public void setConsole(String console) {
		this.console = console;
	}
	
	public FormacionAcademicaDTO getArbFormacionAcademica() {
		return arbFormacionAcademica;
	}
	public void setArbFormacionAcademica(FormacionAcademicaDTO arbFormacionAcademica) {
		this.arbFormacionAcademica = arbFormacionAcademica;
	}

	/**
	 * Metodo que permite obtener listaFormacionAcademicaCompleta.
	 * @return listaFormacionAcademicaCompleta , tipo List<FormacionAcademicaDTO>.
	 */
	public List<FormacionAcademicaDTO> getListaFormacionAcademicaCompleta() {
		return listaFormacionAcademicaCompleta;
	}

	/**
	 * Permite actualizar listaFormacionAcademicaCompleta.
	 * @param listaFormacionAcademicaCompleta, tipo List<FormacionAcademicaDTO>.
	 */
	public void setListaFormacionAcademicaCompleta(
			List<FormacionAcademicaDTO> listaFormacionAcademicaCompleta) {
		this.listaFormacionAcademicaCompleta = listaFormacionAcademicaCompleta;
	}

	public RegistrarFichaArbitroServiceLocal getRegistrarFichaArbitroService() {
		return registrarFichaArbitroService;
	}
	public void setRegistrarFichaArbitroService(
			RegistrarFichaArbitroServiceLocal registrarFichaArbitroService) {
		this.registrarFichaArbitroService = registrarFichaArbitroService;
	}

	public Long getIndicadorEspecialidad() {
		return indicadorEspecialidad;
	}

	public void setIndicadorEspecialidad(Long indicadorEspecialidad) {
		this.indicadorEspecialidad = indicadorEspecialidad;
	}
	/**
	 * Metodo que permite obtener btnAgregar.
	 * @return btnAgregar , tipo Boolean.
	 */
	public Boolean getBtnAgregar() {
		return btnAgregar;
	}

	/**
	 * Permite actualizar btnAgregar.
	 * @param btnAgregar, tipo Boolean.
	 */
	public void setBtnAgregar(Boolean btnAgregar) {
		this.btnAgregar = btnAgregar;
	}

	/**
	 * Metodo que permite obtener btnRectificar.
	 * @return btnRectificar , tipo Boolean.
	 */
	public Boolean getBtnRectificar() {
		return btnRectificar;
	}

	/**
	 * Permite actualizar btnRectificar.
	 * @param btnRectificar, tipo Boolean.
	 */
	public void setBtnRectificar(Boolean btnRectificar) {
		this.btnRectificar = btnRectificar;
	}

	public List<FormacionAcademicaDTO> getListArbFormacionAcademicaHistorial() {
		return listArbFormacionAcademicaHistorial;
	}

	public void setListArbFormacionAcademicaHistorial(
			List<FormacionAcademicaDTO> listArbFormacionAcademicaHistorial) {
		this.listArbFormacionAcademicaHistorial = listArbFormacionAcademicaHistorial;
	}

	public Boolean getOtrosCentroEstudios() {
		return otrosCentroEstudios;
	}

	public void setOtrosCentroEstudios(Boolean otrosCentroEstudios) {
		this.otrosCentroEstudios = otrosCentroEstudios;
	}

	/**
	 * Metodo que permite obtener esPendiente.
	 * @return esPendiente , tipo Boolean.
	 */
	public Boolean getEsPendiente() {
		return esPendiente;
	}

	/**
	 * Permite actualizar esPendiente.
	 * @param esPendiente, tipo Boolean.
	 */
	public void setEsPendiente(Boolean esPendiente) {
		this.esPendiente = esPendiente;
	}

	public Boolean getEsEditar() {
		return esEditar;
	}

	public void setEsEditar(Boolean esEditar) {
		this.esEditar = esEditar;
	}

	/**
	 * Metodo que permite obtener fiscalizaEntidadDTO.
	 * @return fiscalizaEntidadDTO , tipo FiscalizaEntidadDTO.
	 */
	public FiscalizaEntidadDTO getFiscalizaEntidadDTO() {
		return fiscalizaEntidadDTO;
	}

	/**
	 * Permite actualizar fiscalizaEntidadDTO.
	 * @param fiscalizaEntidadDTO, tipo FiscalizaEntidadDTO.
	 */
	public void setFiscalizaEntidadDTO(FiscalizaEntidadDTO fiscalizaEntidadDTO) {
		this.fiscalizaEntidadDTO = fiscalizaEntidadDTO;
	}

	public String getCodTramite() {
		return codTramite;
	}

	public void setCodTramite(String codTramite) {
		this.codTramite = codTramite;
	}

	/**
	 * Metodo que permite obtener listaFormacionAcademicaOriginal.
	 * @return listaFormacionAcademicaOriginal , tipo List<FormacionAcademicaDTO>.
	 */
	public List<FormacionAcademicaDTO> getListaFormacionAcademicaOriginal() {
		return listaFormacionAcademicaOriginal;
	}

	/**
	 * Permite actualizar listaFormacionAcademicaOriginal.
	 * @param listaFormacionAcademicaOriginal, tipo List<FormacionAcademicaDTO>.
	 */
	public void setListaFormacionAcademicaOriginal(
			List<FormacionAcademicaDTO> listaFormacionAcademicaOriginal) {
		this.listaFormacionAcademicaOriginal = listaFormacionAcademicaOriginal;
	}

	/**
	 * Metodo que permite obtener listaFormacionAcademicaActualizacion.
	 * @return listaFormacionAcademicaActualizacion , tipo List<FormacionAcademicaDTO>.
	 */
	public List<FormacionAcademicaDTO> getListaFormacionAcademicaActualizacion() {
		return listaFormacionAcademicaActualizacion;
	}

	/**
	 * Permite actualizar listaFormacionAcademicaActualizacion.
	 * @param listaFormacionAcademicaActualizacion, tipo List<FormacionAcademicaDTO>.
	 */
	public void setListaFormacionAcademicaActualizacion(
			List<FormacionAcademicaDTO> listaFormacionAcademicaActualizacion) {
		this.listaFormacionAcademicaActualizacion = listaFormacionAcademicaActualizacion;
	}

}
